home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / tutorial / t12 / cannon.h.z / cannon.h
C/C++ Source or Header  |  2002-04-08  |  1KB  |  65 lines

  1. /****************************************************************
  2. **
  3. ** Definition of CannonField class, Qt tutorial 12
  4. **
  5. ****************************************************************/
  6.  
  7. #ifndef CANNON_H
  8. #define CANNON_H
  9.  
  10. class QTimer;
  11.  
  12.  
  13. #include <qwidget.h>
  14.  
  15.  
  16. class CannonField : public QWidget
  17. {
  18.     Q_OBJECT
  19. public:
  20.     CannonField( QWidget *parent=0, const char *name=0 );
  21.  
  22.     int   angle() const { return ang; }
  23.     int   force() const { return f; }
  24.     QSizePolicy sizePolicy() const;
  25.  
  26. public slots:
  27.     void  setAngle( int degrees );
  28.     void  setForce( int newton );
  29.     void  shoot();
  30.     void  newTarget();
  31.  
  32. private slots:
  33.     void  moveShot();
  34.  
  35. signals:
  36.     void  hit();
  37.     void  missed();
  38.     void  angleChanged( int );
  39.     void  forceChanged( int );
  40.  
  41. protected:
  42.     void  paintEvent( QPaintEvent * );
  43.  
  44. private:
  45.     void  paintShot( QPainter * );
  46.     void  paintTarget( QPainter * );
  47.     void  paintCannon( QPainter * );
  48.     QRect cannonRect() const;
  49.     QRect shotRect() const;
  50.     QRect targetRect() const;
  51.  
  52.     int ang;
  53.     int f;
  54.  
  55.     int timerCount;
  56.     QTimer * autoShootTimer;
  57.     float shoot_ang;
  58.     float shoot_f;
  59.  
  60.     QPoint target;
  61. };
  62.  
  63.  
  64. #endif // CANNON_H
  65.